import PageTools from '@/components/PageTools'
import moment from 'moment'
// 导入上传组件
import UploadExcel from '@/components/UploadExcel'
import ImageUpload from '@/components/ImageUpload'
import store from '@/store'
// import { Message } from 'element-ui'
export default {

  install (Vue, options) {
    // 扩展一个实例方法 $disabled 用于判断当前用户对某个按钮是否拥有操作权限
    Vue.prototype.$disabled = (authoPoint) => {
      const points = store.getters.points
      const flag = points.includes(authoPoint)
      if (flag) {
        return true
      } else {
        // Message('没有修改权限')
        return false
      }
    }
    // 注册导入excel组件
    Vue.component('UploadExcel', UploadExcel)

    // 扩展一个自定义指令，处理图片加载失败的情况
    // <img v-imgerror='default.png' src="a.png" alt=""/>

    // 定义全局过滤器 是filter不是复数
    Vue.filter('formatTime', value => {
      return moment(value).format('yyyy-MM-DD')
    })

    Vue.component(PageTools.name, PageTools)
    Vue.component('ImageUpload', ImageUpload) // 注册导入上传组件
    Vue.directive('imgerror', {
      inserted (el, bindings) {
        // el表示绑定该指令的DOM元素
        // bindings表示指令相关的信息 bindings.value
        // v-imgerror='a.png'
        // console.dir(bindings)
        // 如何判断图片加载失败了？基于img标签的onerror事件
        // 为空赋初始值
        if (!el.src) el.src = bindings.value || options.default
        el.onerror = () => {
          // 需要给图片标签赋值一个默认的图片路径
          // 如果 bindings.value 值存在就用它，否则使用 options.default 值
          el.setAttribute('src', bindings.value || options.default)
        }
      },
      componentUpdated (el, bindings) {
        el.setAttribute('src', el.src || bindings.value || options.default)
      }
    })
  }
}
